﻿namespace Mercury.ParticleEngine
{
    using System;

    /// <summary>
    /// Defines the meta particle structure, containing only information about the age of the
    /// particle, and its index within the buffer (which can be used to resolve the actual particle
    /// data by provider implementations - wherever that data may reside).
    /// </summary>
    public struct MetaParticle
    {
        /// <summary>
        /// Gets contextual information about the release of the particle, including its initial
        /// state.
        /// </summary>
        public ReleaseContext ReleaseContext { get; internal set; }

        /// <summary>
        /// Gets the particles index within the buffer.
        /// </summary>
        public Int32 Index { get; internal set; }

        /// <summary>
        /// Gets the normalized age of the particle in the range [0,1].
        /// </summary>
        public Single Age { get; internal set; }
    }
}